package com.example.lotterysystem.controller.param;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description: 创建活动请求参数
 * User: Li_yizYa
 * Date: 2025/8/9
 * Time: 13:02
 */
@Data
public class CreateActivityParam implements Serializable {

    /**
     * 活动名称
     */
    @NotBlank(message = "活动名称不能为空")
    private String activityName;

    /**
     * 活动描述
     */
    @NotBlank(message = "活动描述不能为空")
    private String description;

    /**
     * 活动关联奖品列表
     * 对于 List 类型使用 @NotEmpty来判空
     * @Valid 加上后可以进一步判断 List的 CreatePrizeByActivityParam 类中每一个属性是否为空
     * @Validated 不能作用在字段上
     */
    @NotEmpty(message = "活动关联奖品列表不能为空")
    @Valid
    private List<CreatePrizeByActivityParam> activityPrizeList;

    /**
     * 活动关联的人员列表
     */
    @NotEmpty(message = "活动关联人员列表不能为空")
    @Valid
    private List<CreateUserByActivityParam> activityUserList;
}
